Proprietary software applications have become more aggressive in how they manipulate user choice settings when installed in a user's computer. User choice settings are typically indications of certain user preferences for when and how an application is to operate on their computer. For example, during the installation process for a popular proprietary media player application, users are guided through a series of pop-up windows to set certain user choices, such as whether to make the player the default player for popular media, such as .mp3 files, CDs, DVDs, MPEG and AVI video files, and/or other types of media. Users are further prompted to authorize the player to periodically check their system to maintain their user choice settings, even when the player is not actively being used to play anything. Users who provide that authorization may unwittingly defeat their ability to change preferences afterwards, such as choosing a different media player to play .mp3 files. This is because the previously installed player periodically reverts to the user choice settings that the user set during the initial installation. Any changes to the user's choices that the user set afterward using a different media player are lost. If both media players employ the same aggressive tactic of periodically checking the system to maintain the user choices set for that player, the results can be unpredictable, with one media player set as the default player some of the time, and the other media player set as the default player some of the time. Needless to say, this presents users with a very confusing and annoying situation. The only solution is to uninstall the offending media player or to reinstall the player to remove the authorization to periodically maintain the user's choice settings for that player. Even reinstallation of the application may not correct the problem if the installation procedure is not followed properly, or if, as sometimes happens, the application automatically changes certain settings without giving the user a way to opt out of the changes.
In the context of the Windows® operating system, the user choices are typically set by storing those choices in the Windows® registry. The Windows® registry is a central hierarchical database used in Microsoft Windows® operating systems to store information necessary to configure the systems for one or more users, applications, and hardware devices. Applications, such as media players, store user preferences in registry data generally referred to as registry keys. The operating system uses the current values of the registry keys to determine how to handle certain events. For instance, using the above media player example, the operating system interrogates the Windows® registry keys relating to .mp3 files in the event that the user activates an .mp3 file in order to determine which media player to choose to play the file. Another example is when a browser application interrogates the Windows® registry to determine which Web page to display as the default home page when the user first activates the browser.
While the ability to store user choice settings in the Windows® registry is a convenient service of the Windows® operating system, the registry itself is, unfortunately, not secure. Applications are able to change the values of keys in the registry to suit their goals. Thus, competing applications often step on one another, resetting the values of the same keys, and thereby resetting the corresponding user choice settings that those keys represent, without the user's knowledge or consent.